Methods and systems to increase accuracy of eye tracking

ABSTRACT

Systems and methods to monitor and interact with users viewing screens are disclosed. An example system includes a sensor to gather gaze data from a user viewing images on a display. The display has spatial coordinates. The system includes a processor communicatively coupled to the display and the sensor. The processor determines a first gaze location having first spatial coordinates based on the gaze data and calibration settings associated with determining gaze locations. The processor alters a portion of the display at or near the first gaze location. After the portion of the display has been altered, the processor determines a second gaze location having second spatial coordinates based on the gaze data and the calibration settings. The processor performs a comparison of the first gaze location to the second gaze location. If the comparison does not meet a threshold, the processor updates the calibration settings based on the comparison and determines a third gaze location having third spatial coordinates based on the gaze data and the updated calibration settings.

FIELD OF THE DISCLOSURE

This disclosure relates generally to monitoring media and, moreparticularly, to methods and systems to increase accuracy of eyetracking.

BACKGROUND

In recent years, electronic displays (e.g., associated with personalcomputers, mobile devices, etc.) have been implemented with eye trackingsystems to determine where users are looking relative to the displays.Common eye tracking systems utilize cameras or optical sensors (e.g.,photodetectors, etc.) to detect visible or infrared light emitting orreflecting from the users. As the users focus their attention to mediacontent (e.g., pictures, videos, advertisements, etc.) presented via thedisplays, the eye tracking systems can calculate or estimate gazelocations associated with where the users are looking relative to thedisplays.

Often, known eye tracking systems provide inaccuracy or error whenestimating gaze locations. That is, the estimated gaze locations aredifferent from where the users are actually looking (i.e., true gazelocations). Typically, before the users view desired media contentand/or generally use the displays, these known eye tracking systems mayrequire the users to perform one or more calibration processes to aidestimations of the gaze locations. These known calibration processestypically prompt and require the users, for example, to follow stepsand/or a set of instructions. Thus, these known calibration processescan be distracting, time consuming and/or, more generally, undesirableto the users viewing the displays.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an example display and an example eye tracking systemin accordance with the teachings of this disclosure.

FIG. 2 is a block diagram of the example eye tracking system of FIG. 1in accordance with the teachings of this disclosure.

FIGS. 3A, 3B and 3C illustrate example screens of the example display ofFIG. 1 in accordance with the teachings of this disclosure.

FIG. 4 is a flowchart representative of an example process that may beexecuted by the example system of FIG. 1 to implement the examplesdisclosed herein.

FIG. 5 is a block diagram of an example processing platform capable ofexecuting example machine-readable instructions to implement the processof FIG. 4 and/or the example system of FIG. 1.

The drawing(s) are not to scale. Wherever possible, the same referencenumbers will be used throughout the drawing(s) and accompanying writtendescription to refer to the same or like parts.

DETAILED DESCRIPTION

Methods and systems to increase accuracy of eye tracking are disclosed.Eye tracking methods and systems collect gaze data associated with auser's attention or gaze relative to a display while viewing mediacontent (e.g., pictures, videos, advertisements, etc.). This gaze datamay be advantageously used to optimize the media content provided to theusers, in addition to other uses. For example, media content providers,or other entities such as advertising companies, are often interested inviewing behavior and/or habits of different users.

Examples disclosed herein optimize eye tracking systems by increasingaccuracy when calculating and/or estimating gaze locations. Additionallyor alternatively, examples disclosed herein can perform one or morecalibration processes while reducing and/or eliminating distractions,disturbances, and/or inconveniences perceived by users.

For example, an example system disclosed herein includes a sensor togather gaze data from a user viewing images on a display. The displayhas spatial coordinates. The example system includes an exampleprocessor communicatively coupled to the display and the sensor. Theexample processor determines a first gaze location having first spatialcoordinates based on the gaze data and calibration settings associatedwith determining gaze locations. The example processor alters a portionof the display at or near the first gaze location. After the portion ofthe display has been altered, the example processor determines a secondgaze location having second spatial coordinates based on the gaze dataand the calibration settings. The example processor performs acomparison of the first gaze location to the second gaze location. Ifthe comparison does not meet a threshold, the example processor updatesthe calibration settings based on the comparison and determines a thirdgaze location having third spatial coordinates based on the gaze dataand the updated calibration settings.

Also, some disclosed examples provide or utilize a display having ascreen to present images to a user, such as, for example, alight-emitting diode display, a projection display, etc. One or moreexample cameras and/or optical sensors are positioned near the displayand configured to gather gaze data from a user viewing the images. Anexample processor is communicatively coupled to the sensor(s) to receiveand/or process the gaze data. In some disclosed examples, the exampleprocessor determines a first gaze location of the user having firstspatial coordinates relative to the display based on the gaze data andcalibration settings associated with determining gaze locations.

In some examples, the processor is communicatively coupled to thedisplay to at least partially control the presented images. For example,after determining the first gaze location, the processor alters aportion of the display at or near the first gaze location, which maycause the user to react and/or change his or her attention or gaze tothe altered portion. In some disclosed examples, the processorrepeatedly alters the portion of the display at periodic or aperiodictime intervals (e.g., between about 1 millisecond and about 100milliseconds), which may be associated with reaction or responsecharacteristics of the user. Additionally or alternatively, the portionof the display that is altered can be positioned offset from the firstspatial coordinates by a pre-determined distance, which may provoke adifferent and/or a unique response from the user. In some examples, theprocessor alters the portion of the display by changing a color of oneor more pixels to contrast adjacent pixels to facilitate a naturalreaction to the altered portion of the display by the user. Similarly,in other examples, the processor alters the portion of the display byincluding a first shape that contrasts a second shape surrounding oradjacent to the first shape.

After the portion of the display has been altered, the example processordetermines a second gaze location having second spatial coordinatesbased on the gaze data and the calibration settings. The exampleprocessor performs a comparison of the first gaze location to the secondgaze location. In such examples, if the comparison does not meet athreshold (e.g., at least some of the calibration settings are notoptimal or otherwise indicate that the results will not be accurate),the processor updates the calibration settings based on the comparison.The processor also determines a third gaze location having third spatialcoordinates based on the gaze data and the updated calibration settings.

As used herein, when the calibration settings are referred to as“optimal”, the calibration settings provide accurate gaze locations whenused to at least partially determine one or more gaze locations.Conversely, as used herein, when the calibration settings are referredto as “not optimal”, the calibration settings provide inaccurate gazelocations when used to at least partially determine the one or more gazelocations.

In some examples, the processor continues iterations of displayalterations and gaze location comparisons until the threshold is met,which may indicate the calibration settings are optimal and/or accurateand on ongoing data collection will be accurate. After numerousiterations, some disclosed examples advantageously utilize one or moremachine learning methods and/or techniques to train the eye trackingsystem to the user, thereby further increasing and/or maximizingaccuracy of the determined gaze points as the iterations continue.

Also disclosed herein is an example method that includes presentingimages to a user via a display. The display has spatial coordinatesassociated with the images. The example method includes gathering gazedata from the user viewing the images via a sensor. The example methodincludes determining a first gaze location having first spatialcoordinates based on the gaze data and calibration settings associatedwith determining gaze locations. The example method includes altering aportion of the display at or near the first gaze location. After theportion of the display has been altered, the example method includesdetermining a second gaze location having second spatial coordinatesbased on the gaze data and the calibration settings. The example methodincludes performing a comparison of the first gaze location to thesecond gaze location. If the comparison does not meet a threshold, themethod includes updating the calibration settings based on thecomparison and determining a third gaze location having third spatialcoordinates based on the gaze data and the updated calibration settings.

In addition, an example tangible machine-readable storage mediumcomprises instructions which, when executed, causes a processor topresent images to a user via a display. The display has spatialcoordinates associated with the images. The example instructions causethe processor to gather gaze data from the user viewing the images via asensor. The example instructions cause the processor to determine afirst gaze location having first spatial coordinates based on the gazedata and calibration settings associated with determining gazelocations. The example instructions cause the processor to alter aportion of the display at or near the first gaze location. After theportion of the display has been altered, the processor is to determine asecond gaze location having second spatial coordinates based on the gazedata and the calibration settings. The example instructions cause theprocessor to perform a comparison of the first gaze location to thesecond gaze location. If the comparison does not meet a threshold, theprocessor is to update the calibration settings based on the comparisonand determines a third gaze location having third spatial coordinatesbased on the gaze data and the updated calibration settings.

FIG. 1 illustrates an example system 100 in accordance with theteachings of this disclosure. The example system 100 includes an examplegraphic display 102 to present media content (e.g., text, pictures,videos, etc.) and/or, more generally, to present graphics and/or images104. The display 102 can be a light-emitting diode display, a liquidcrystal display, a projection display, etc., that may be associated withan electronic device 106 (e.g., a personal computer, a mobile device, atablet, etc.). The display 102 includes a screen 108 to provide spatialcoordinates (e.g., x-coordinates, y-coordinates, etc.) associated withthe presented images 104 and relative to the screen 108 and/or thedisplay 102. For example, the display 102 may present the images 104 atone or more spatial coordinate(s) on the screen 108 of the display 102by controlling and/or altering one or more pixel(s) on the screen 108.In some examples, the screen 108 is curved and/or not flat. In thisexample, the screen 108 is flat.

In the illustrated example of FIG. 1, a user 110 (e.g., a person, asubject, a panelist, a viewer, and/or an audience member) views and/orinteracts with the display 102 such as for personal entertainment,education, business, shopping, etc., and/or any other suitable ortypical use of the display 102. In some examples, more than one user 110can be using and/or viewing the display 102 at the same time.

The example system 100 includes an example eye tracking system 112operatively and/or communicatively coupled to the display 102 to monitorand/or interact with the user 110. In the illustrated example of FIG. 1,the eye tracking system 112 determinizes gaze locations associated withthe user 110 viewing the display 102. As used herein, the term “gazepoint” and/or “gaze location” is/are expressly defined to include apoint and/or location (e.g., provided by the above-mentioned spatialcoordinates) positioned on the screen 108 and/or the display 102 andassociated with where the user 110 is looking when viewing the display102. For example, as the user 110 focuses his or her attention or gazeto different spatial coordinates positioned on the screen 108 of thedisplay 102, the eye tracking system 112 automatically determines thesespatial coordinates and generates corresponding data (e.g., values ofx-coordinates, y-coordinates, time, etc.).

In the illustrated example of FIG. 1, the eye tracking system 112includes one or more cameras and/or sensors 114 to generate and/orgather gaze data associated with the user 110 viewing the display 102.For example, the sensor(s) can be one or more phototransistors,photoresistors, etc., and/or, more generally, optical sensors operableto detect infrared and/or visible light emitting or reflecting from theuser 110 (e.g., via an eye of the user 110) and generate associated datain response. In some examples, the sensor(s) 114 can be positioned onthe user 110 (e.g., via headset). In this example, the sensor(s) arepositioned adjacent and/or near the user 110 and coupled to the eyetracking system 112 and/or the display 102. In other examples, thesensor(s) 114 may be resident within the display 102 and/or may bepositioned discreetly, such that the user 110 does not notice thesensor(s) 114 when viewing the display 102.

As the user 110 views the images 104 presented via the display 102, thesensor(s) 114 generate and/or gather data associated with where the user110 is looking relative to the screen 108 and/or the display 102. Forexample, the user 110 may be looking at one or more image(s) 104 (e.g.,an advertisement) positioned at one or more spatial coordinate(s) on thescreen 108. Based on this gathered data, the eye tracking system 112 canimplement (e.g., by using a processor) one or more algorithms orequations to determine associated gaze locations.

In some examples, the eye tracking system 112 and/or a processor 116associated with the eye tracking system 112 executes one or morecalibration processes to update and/or at least partially determine thegaze locations, which is disclosed in greater detail below. For example,the eye tracking system 112 may be trained to a different user 110having different reflection characteristics (e.g., associated with theireye) relative to the current user 110. In some such examples, the eyetracking system 112 may determine gaze locations that are differentrelative to where the user 110 is actually looking (i.e., true gazelocations), which may be corrected and/or compensated by advantageouslyusing calibration settings, such as one or more calibration vectors(e.g., 2D vectors). This difference between a determined gaze locationand a true gaze location of the user 110 can vary among different users110 and/or the images 104 presented via the display 102.

As disclosed above, the eye tracking system 112 can include and/orimplement a processor 116 (e.g., resident in the eye tracking system 112and/or an electronic device associated with the eye tracking system 112)to at least partially determine these gaze locations. In this example,the processor 116 is resident within the electronic device 106associated with the eye tracking system 112 and/or the display 102. Inother examples, the processor 116 is resident within the eye trackingsystem 112 and/or controls the eye tracking system 112 via one or morewireless, wired, and/or web-based communication networks (e.g., via theInternet, etc.). For example, the processor 116 may be resident within acloud-computing platform and/or a server capable of communicating withand/or controlling the eye tracking system 112 from a remote location.

In some examples, the eye tracking system 112 generates and/or controlsthe images 104 presented via the display 102 to provoke a reaction orresponse from the user 110. For example, the eye tracking system 112alters portions and/or pixels of the display 102 while the user 110 isviewing the images 104 to cause the user 110 to change his or herattention or gaze to the altered portion, which is disclosed in greaterdetail below in connection with FIGS. 3A, 3B and 3C.

FIG. 2 is a block diagram 200 of the example eye tracking system 112 ofFIG. 1 to implement the examples disclosed herein. In the illustratedexample of FIG. 2, the example eye tracking system 112 (e.g., a systemand/or an apparatus) includes the example display 102, the examplesensor(s) 114, and/or the example processor 116 of FIG. 1. Additionallyor alternatively, the example eye tracking system 112 includes anexample display interface 202, an example sensor interface 204, anexample communication interface 206, an example gaze estimator 208, anexample comparator 210, an example calibrator 212, an example database214, an example trend analyzer 216, and an example learning module 218.

While an example manner of implementing the example eye tracking system112 of FIG. 1 is illustrated in FIG. 2, one or more of the elements,processes and/or devices illustrated in FIG. 2 may be combined, divided,re-arranged, omitted, eliminated and/or implemented in any other way.Further, the example the example display 102, the example sensor(s) 114,the example display interface 202, the example sensor interface 204, theexample communication interface 206, the example gaze estimator 208, theexample comparator 210, the example calibrator 212, the example database214, the example trend analyzer 216, the example learning module 218,the example processor 116 and/or, more generally, the example eyetracking system 112 of FIG. 1 may be implemented by hardware, software,firmware and/or any combination of hardware, software and/or firmware.Thus, for example, any of the example the example display 102, theexample sensor(s) 114, the example display interface 202, the examplesensor interface 204, the example communication interface 206, theexample gaze estimator 208, the example comparator 210, the examplecalibrator 212, the example database 214, the example trend analyzer216, the example learning module 218, the example processor 116 and/or,more generally, the example eye tracking system 112 of FIG. 1 could beimplemented by one or more analog or digital circuit(s), logic circuits,programmable processor(s), application specific integrated circuit(s)(ASIC(s)), programmable logic device(s) (PLD(s)) and/or fieldprogrammable logic device(s) (FPLD(s)). When reading any of theapparatus or system claims of this patent to cover a purely softwareand/or firmware implementation, at least one of the example the exampledisplay 102, the example sensor(s) 114, the example display interface202, the example sensor interface 204, the example communicationinterface 206, the example gaze estimator 208, the example comparator210, the example calibrator 212, the example database 214, the exampletrend analyzer 216, the example learning module 218, the exampleprocessor 116 and/or, more generally, the example eye tracking system112 of FIG. 1 is/are hereby expressly defined to include a tangiblecomputer readable storage device or storage disk such as a memory, adigital versatile disk (DVD), a compact disk (CD), a Blu-ray disk, etc.storing the software and/or firmware. Further still, the example eyetracking system 112 may include one or more elements, processes and/ordevices in addition to, or instead of, those illustrated in FIG. 2,and/or may include more than one of any or all of the illustratedelements, processes and devices.

Turning in detail to FIG. 2, the display 102 and the sensor(s) 114 arecommunicatively and/or operatively coupled to the eye tracking system112 via one or more communication links 220 such as, for example, signalwires and/or busses. Generally, the communication link(s) 220 can sendand/or transmit (e.g., repeatedly or continuously) information or databetween components (e.g., the display interface 202, the sensorinterface 204, the communication interface 206, the gaze estimator 208,the comparator 210, the calibrator 212, the database 214, the trendanalyzer 216 and/or the learning module 218) within the eye trackingsystem 112, the sensor(s) 114, the display 102 and/or the processor 116.For example, the sensor interface 204 receives the gaze data generatedand/or gathered by the sensor(s) 114 while the user 110 views thedisplay 102. In other examples, the display interface 202 sends and/ortransmits information to the display 102 to control and/or alter one ormore portion(s) or pixel(s) positioned on the screen 108 to provoke areaction or response from the user 110, which is disclosed in greaterdetail below in connection with FIGS. 3A, 3B and 3C.

In some examples, the example eye tracking system 112 implements theexample communication interface 206 to enable the eye tracking system toaccess one or more wired, wireless and/or web-based communicationnetworks. For example, the communication interface 206 can access theInternet to communicate with a cloud-based computing platform and/or aserver, in some examples, to send and/or receive data or informationsuch as gaze data, calibration settings, etc.

In the illustrated example of FIG. 2, the eye tracking system 112implements the gaze estimator 208 to determine a plurality ofuncalibrated gaze locations while the user 110 views the display 102based on the gaze data generated via the sensor(s) 114 and/or stored inthe database 214. In some examples, as the user 110 focuses his or hergaze or attention to one or more of a plurality of image(s) 104presented via the display 102, the gaze estimator 208 determinesuncalibrated spatial coordinates associated with the viewed images 104and relative to the screen 108 and/or the display 102. Additionally oralternatively, the gaze estimator 208 determines a timestamp and/or arelative time associated with the determined spatial coordinates. Forexample, based on the gaze data, the eye tracking system 112 determinesa first uncalibrated gaze location including first uncalibrated spatialcoordinates (x₁,y₁) having values and an associated first timestamp t₁.In such examples, these spatial coordinates correspond to a certainposition or location on the screen 108 and/or the display 102 and arelative time at which the gaze location was determined. Theseuncalibrated gaze locations can be modified and/or changed (e.g., viathe calibrator 212) to provide calibrated gaze locations, which isdisclosed in greater detail below.

In the illustrated example of FIG. 2, the example eye tracking system112 implements the comparator 210 to process and/or analyze differentgaze locations (e.g., calibrated) determined by the gaze estimator 208and/or the calibrator 212. In some examples, the comparator 210 receivesthe gaze locations from the gaze estimator 208, the calibrator 212and/or the database 214 via the communication link(s) 220.

After receiving the gaze locations, the comparator 210 performscomparisons between different consecutive pairs of gaze locations anddifferent threshold values. These comparisons can indicate, in someexamples, whether the calibration settings used by the eye trackingsystem 112 are accurate. For example, the comparator 210 compares afirst gaze location to a second gaze location (i.e., a first pair ofgaze locations) to determine one or more difference values (e.g., avalue of an x-coordinate, a y-coordinate, a timestamp, etc.) betweentheir respective spatial coordinates. For example, the comparator 210determines a relative difference between an x-component and ay-component of the first gaze location and the second gaze location. Thecomparator 210 then compares the one or more difference values to arespective threshold value (e.g., a calculated and/or a pre-determinedthreshold value). When met, these one or more threshold values canindicate whether calibration settings of the eye tracking system 112 areat least partially accurate and/or whether to update the calibrationsettings.

In some examples, when each of the threshold values is met, thecalibration settings used by the eye tracking system 112 (e.g., via thecalibrator 212) may be accurate. In other examples, when at least one ofthe threshold values is not met, the calibration settings are notaccurate and may provide undesired inaccuracy when used to determinegaze locations.

In some examples, if the user 110 is determined to be disinterested, thecalibrator 212 does not update the calibration settings, which can avoidincorrect calibration settings. In such examples, the comparator 210compares different timestamps stored in the database 214 to provide adifference value of time associated with a reaction or response of theuser 110. For example, after the display interface 202 alters a portionof the screen 108 and/or the display 102, a first timestamp is stored inthe database 214. As the user 110 changes his or her attention or gazeto the altered portion of the display, the gaze estimator 208 determinesa second gaze location and provides an associated second timestamp. Inthis example, the comparator 210 compares the first timestamp to thesecond timestamp to provide the difference value of time. In some suchexamples, a relatively large value of the time (e.g., 500 milliseconds,750 milliseconds, 1 second, etc.) may indicate a disinterest of the user110.

In the illustrated example of FIG. 2, as disclosed above, the eyetracking system 112 implements the calibrator 212 to modify, changeand/or at least partially determine gaze locations with the gazeestimator 208 by using calibration settings. For example, firstcalibration settings can include a first calibration vector (e.g., a 2Dvector) having respective magnitudes, directions and/or, more generally,vector components (e.g., an x-component {circumflex over (x)} and/or ay-component ŷ). In this example, after the gaze estimator 208 determinesa first gaze location (e.g., that is uncalibrated), the calibrator 212advantageously utilizes the first calibration settings (e.g., the firstcalibration vector) to modify or change the first gaze location, whichis disclosed in greater detail below. In some examples, the gazeestimator 208 and/or the calibrator 212 simultaneously determine thefirst gaze location and/or other (e.g., second, third, fourth, etc.)gaze locations.

In some examples, the first calibration vector and/or, more generally,the first calibration settings are determined and/or obtained by the eyetracking system 112 prior to using and/or viewing the display 102. Forexample, the user 110 performs a known calibration process and/ortechnique, such as by reading a set of successive instructions presentedvia the display 102, to enable the eye tracking system to provide thefirst calibration settings. In such examples, the user 110 is aware ofthe calibration process. In other examples, the user 110 can perform oneor more discrete calibration processes while he or she views the display102 to reduce disturbances and time spent following instructions, whichis disclosed in greater detail below in connection with FIG. 4. In somesuch examples, the user 110 may be unaware that he or she isparticipating in the one or more calibration processes, which may bedesired by the user 110. Generally, the calibrator 212 can update thefirst (or other) calibration settings and/or vector based on one or morecomparisons performed by the comparator 210. For example, if at leastone of the above-disclosed thresholds are not met by a comparison, thecalibrator 212 updates, at least partially, the first calibrationsettings (e.g., the first calibration vector).

In the illustrated example of FIG. 2, the eye tracking system 112implements the database 214 to store different data or informationassociated with the eye tracking system 112. For example, after thesensor(s) 114 generate and/or gather the gaze data, the sensor interface204 transmits (e.g., via the communication link(s) 220) and stores thegaze data within the database 214. In some examples, after the gazeestimator 208 and/or the calibrator 212 calculate and/or determine gazelocations, the database 214 receives the gaze locations and/orassociated spatial coordinates and timestamps as information or data viathe communication link(s) 220. In other examples, after the displayinterface 202 alters the portion of the screen 108 and/or the display102, an associated timestamp is stored in the database 214. In otherexamples, after the comparator 210 performs the one or moreabove-described comparisons, the database 214 receives associatedresults as data or information via the communication link(s) 220.

In the illustrated example of FIG. 2, the eye tracking system 112implements the example trend analyzer 216 to process and/or analyzeresults of different comparisons performed by the comparator 210. As thecomparator 210 continues iterations of comparisons, the above-discloseddifference values can approach a value (e.g., the first threshold valueand/or the second threshold value) to provide a first trend. In somesuch examples, the trend analyzer 216 determines this first trend. Inother examples, if the difference values fluctuate as the comparator 210continues iterations, the first trend is not provided and, thus, thetrend analyzer 216 does not determine the first trend.

In other examples, the trend analyzer 216 processes and/or analyzesother data or information stored in the database 214 to assess useractivity, such as the user's reaction time to alterations of the display102 and/or other characteristics associated with how the user 110interacts with the display 102 and/or images 104 presented via thedisplay 102. For example, as the comparator 210 continues iterations ofcomparisons, the trend analyzer 216 can identify a reaction time of theuser 110 as increasing, as disclosed above, which may indicatedisinterest of the user 110. In some examples, the trend analyzer 216identifies other user activity that indicates the disinterest of theuser 110. For example, during use of the eye tracking system 112 and/orthe display 102, inputs and/or interactions provided by the user 110(e.g., inputs via a mouse, a keyboard, a touch screen, etc.) may becomeless frequent and/or may cease over a time interval. In such examples,this user activity also indicates the disinterest of the user 110 and isidentified by the trend analyzer 216.

In the illustrated example of FIG. 2, the eye tracking system 112implements the example learning module 218 to advantageously utilize oneor more known machine learning methods and/or techniques (e.g.,supervised learning, unsupervised learning, etc.) to further modify orchange gaze locations determined by the gaze estimator 208 and/or thecalibrator 212. For example, the learning module 218 can use resultsfrom different comparisons performed by the comparator 210 as trainingdata to provide predictive models, functions and/or algorithmsassociated with the user 110 based on the training data. In some suchexamples, the learning module 218 can use these predictive models,functions and/or algorithms to further modify or change one or more gazelocations determined by the gaze estimator 208 and/or the calibrator212.

FIGS. 3A, 3B and 3C illustrate example screens of the example display102 of FIG. 1 in accordance with the teachings of this disclosure. FIGS.3A, 3B and 3C show the screen 108 and/or the display 102 having spatialcoordinates (as represented by an x-axis 302 and a y-axis 304 in FIGS.3A, 3B and 3C) relative to the screen 108 and/or the display 102 whilethe eye tracking system 112 monitors the user 110 (not shown). In theillustrated example of FIG. 3A, the eye tracking system 112 determined(e.g., via the gaze estimator 208) an uncalibrated gaze location 306 atfirst spatial coordinates (as represented by a cross symbol and a firstset of values (x₀,y₀) in FIG. 3A) relative to the screen 108 and/or thedisplay 102. In this example, the eye tracking system 112 updated (e.g.,via the calibrator 212) the uncalibrated gaze location 306 by usingfirst calibration settings to provide a first gaze location 308 atsecond spatial coordinates (as represented by a dot symbol and a secondset of values (x₁,y₁) in FIG. 3A). In some examples, as mentioned above,the eye tracking system 112 simultaneously determines the uncalibratedgaze location and updates the location to provide the first gazelocation 308.

In this example, the difference between the first spatial coordinatesand the second spatial coordinates provides a first calibration vector(e.g., {right arrow over (v)}) 310 provided and/or defined by vectorcomponents such as, for example, an x-component {circumflex over (x)}and a y-component ŷ component each having values. In this example, thefirst calibration vector 310 has a value of an x-component (asrepresented by Δx in FIG. 3A) and a value of a y-component (asrepresented by Δy in FIG. 3A) provided by the difference between thefirst spatial coordinates and the second coordinates (e.g., whereΔx=x₁−x₀ and Δy=y₁−y₀). In some such examples, the first calibrationsettings include this first calibration vector 310. In other examples,the eye tracking system 112 can update (e.g., via the calibrator 212)this first calibration vector 310 repeatedly, which is disclosed ingreater detail below in connection with FIG. 4.

In some examples, as illustrated in FIG. 3B, the eye tracking system 112alters a portion 312 (e.g., as represented by the square symbol in FIG.3B) of the screen 108 and/or the display 102 associated with one or moredetermined gaze locations, which may provoke a reaction or response fromthe user 110 to change his or her attention or gaze to the alteredportion 312. For example, after the eye tracking system 112 determinesthe first gaze location 308, the eye tracking system 112 alters theportion 312 of the screen 108 and/or the display 102 at the firstspatial coordinates associated with the first gaze location 308 to causethe user 110 to change his or her attention or gaze to the portion 312.

In some examples, the eye tracking system 112 alters the portion 312 bychanging a color of one or more pixels of the display 102 to contrastadjacent pixels, which may attract attention of the user 110 andfacilitate the user's instinct and/or reaction to change his or herattention or gaze to the altered portion 312. In other examples, the eyetracking system 112 alters the portion 312 by providing a first shapethat contrasts a second shape surrounding or adjacent to the firstshape. In the illustrated example of FIG. 3B, the altered portion 312includes the first shape that is square. In other examples, the alteredportion 312 can include any other suitable shapes (e.g., circles,triangles, other regular or irregular polygons, etc.) and/or symbolsthat contrast shapes adjacent or nearby the one or more gaze locations.In some examples, the eye tracking system 112 alters the portion 312 fora time interval that may be associated with reaction characteristics(e.g., a reaction time) of the user 110, which may facilitate a naturalresponse of the user 110 to change his or her attention or gaze to thealtered portion 312 in response. For example, the eye tracking system112 alters the portion 312 between about 1 millisecond and about 100milliseconds. In other examples, the eye tracking system 112 canadvantageously alter the portion 312 for any other suitable timeinterval (e.g., less than 1 millisecond and/or greater than 100milliseconds) that provides a reaction or response from the user 110.

Additionally or alternatively, in some examples, the eye tracking system112 continues iterations of altering the portion 312 of the display 102to provoke continued reactions or responses from the user 110, therebyenabling the eye tracking system 112 to continue determining andcomparing the above-disclosed consecutive pairs of gaze locations withthe first threshold value and/or the second threshold value.

In some examples, when the portion 312 is altered at the first gazelocation 308, the user 110 may not change his or her attention or gaze(e.g., toward the altered portion 312), which may indicate thecalibration settings are accurate or the user 110 is not interested inand/or responsive to the altered portion 312. Otherwise, in otherexamples, when the user 110 changes his or her attention or gaze (e.g.,toward the altered portion 312) in response to the portion 312 beingaltered at the first gaze location, the calibration settings areconsidered to be inaccurate.

In some examples, as illustrated in FIG. 3C, the eye tracking system 112alters the portion 312 of the screen 108 and/or the display 102 offsetto the gaze locations by a pre-determined distance 314 relative to thosegaze locations. In this example, the eye tracking system 112 alters theportion 312 offset to the first gaze location 308 by the pre-determineddistance 314 (as represented by Δx and Δy in FIG. 3C) at third spatialcoordinates (as represented by a third set of values (x₂,y₂) in FIG.3C). By altering the portion 312 offset to the first gaze locationinstead of at the first gaze location, the user 110 is encouraged and/ormore likely to change his or her attention or gaze to the alteredportion 312. In such examples, if the user's 110 attention or gazechanges exactly to the altered portion 312, the calibration settings areconsidered to be accurate. Otherwise, in other examples, if the user's110 attention or gaze does not change or changes adjacent and/or nearthe altered portion 312, the calibration settings are considered to beinaccurate and/or the user 110 is considered to be disinterested.Additionally or alternatively, the portion 312 may provoke a differentand/or unique reaction or response from the user 110 when altered offsetto the first gaze location 308 by the pre-determined distance 314,instead of being altered at the first gaze location 308.

In such examples, by comparing (e.g., via the comparator 210) thispre-determined distance 314 with the first gaze location 308 and asubsequent second gaze location, the eye tracking system 112 determineswhether some or all of the calibration settings are accurate (e.g., thex-component {circumflex over (x)} and/or the y-component ŷ of the firstcalibration vector 310). For example, at least one of the abovedisclosed threshold values includes, at least partially, thispre-determined distance 314 (e.g., Δx and/or Δy in FIG. 3).

FIG. 4 illustrates a flowchart representative of an example process 400that can be implemented to automatically determine gaze locations and/orupdate calibration settings associated with determining gaze locations.In some examples, as will be discussed in greater detail below, theexample process 400 can iterate to continuously determine the gazelocations and/or update the calibration settings. The example process400 can be implemented by using the example display 102 and/or, moregenerally, the example eye tracking system 112 of FIGS. 1 and 2.

The example process 400 begins by generating and/or gathering gaze dataassociated with the user 110 viewing the display 102 (block 402). Asmentioned above, the display 102 can be a light-emitting diode display,a liquid crystal display, a projection display, etc. As the user 110views the images 104 presented via the display 102, the eye trackingsystem 112 monitors the user 110. In some examples, the sensor(s) 114 ofthe eye tracking system 112 generate and/or gather gaze data based onwhere the user 110 is looking relative to the screen 108 and/or thedisplay 102, for example, by detecting light emitting or reflecting fromthe user 110 (e.g., via his or her eye). As the sensor(s) 114 generateand/or gather the gaze data, the eye tracking system stores (e.g., viathe database 214) the gaze data.

The example process 400 includes determining a first gaze location basedon the gaze data and calibration settings associated with determininggaze locations (block 404). In some examples, first and/or currentcalibration settings are provided via one or more known calibrationprocesses performed by the user 110. For example, when setting up orconfiguring the display 102 and/or the eye tracking system 112, the user110 may read a set of instructions and/or may perform any other knownsuitable methods or techniques to acquire or obtain the first and/orcurrent calibration settings.

In other examples, these first and/or current calibration settings arereceived from a cloud-based platform or server (e.g., via the Internet).For example, the communication interface 206 accesses one or more wired,wireless, and/or web-based communication networks to obtain the firstand/or current calibration settings (e.g., from a server, a database,etc.).

In some examples, the first and/or current calibration settings areresident within the display 102 and/or the processor 116 (e.g.,installed on the processor 116) and/or, more generally, resident withinand/or programmed to the eye tracking system 112. In other examples, thefirst and/or current calibration settings include arbitrary or randomvectors.

As disclosed above, the eye tracking system 112 determines (e.g., viathe gaze estimator 208 and/or the calibrator 212) different gazelocations having respective spatial coordinates relative to the screen108 and/or the display 102. For example, based on the generated and/orgathered gaze data (block 402) and the first and/or current calibrationsettings, the eye tracking system 112 determines a first gaze location(e.g., the first gaze location 308 of FIGS. 3A, 3B and 3C). In thisexample, the first gaze location is provided and/or defined by firstspatial coordinates (x₁,y₁) having values, for example, where x₁=100,y₁=200 (these and other values in this disclosure are for illustrativepurposes and other values may apply in other examples).

In this example, the eye tracking system 112 uses the first and/orcurrent calibration settings, at least partially, to provide the firstgaze location. As mentioned above, in the absence of any calibrationsettings, the eye tracking system 112 may provide undesired inaccuracieswhen determining the gaze locations. In some examples, the first and/orcurrent calibration settings can include a calibration vector (e.g., thefirst calibration vector 310 of FIG. 3A) having vector components. Thecalibration vector can include an x-component x and a y-component havingvalues, for example, where {circumflex over (x)}=10 and ŷ=10 (othervalues may apply in other examples). In other examples, the first and/orcurrent calibration settings can include any other suitable vector,formula, and/or equation. According to the illustrated example, when theeye tracking system 112 determines (e.g., via the gaze estimator 208) anuncalibrated gaze location provided and/or defined by uncalibratedspatial coordinates (x₀,y₀) having values, for example, where x₀=90 andy₀=190, the eye tracking system 112 updates (e.g., via the calibrator212) the uncalibrated gaze location using the calibration vector toprovide the first gaze location and first spatial coordinates (x₁,y₁),for example, where x₁=x₀+{circumflex over (x)}=100 and y₁=y₀+ŷ=200.

The example process 400 includes altering a portion of the display 102at a location associated with the first gaze location (block 406), whichmay provoke a response from the user 110 to cause his or her attentionor gaze to change to the altered portion, for example, if the user 110is focusing his or her attention or gaze to a location on the display102 that is different relative to the first gaze location. For example,the eye tracking system 112 sends and/or transmits information or data(e.g., via the display interface 202) to the display 102 to controland/or alter one or more portions (e.g., the portion 312 of FIGS. 3B and3C) positioned on the screen 108 and/or the display 102. In someexamples, the eye tracking system 112 controls one or more pixelspositioned on the screen 108 and/or the display 102. Generally, afterthe eye tracking system 112 system determines the first gaze location(block 404), the eye tracking system 112 alters the portion of thescreen 108 and/or the display 102 at or near the first spatialcoordinates associated with the first gaze location (block 406) topotentially cause the user 110 to change his or her attention or gaze tothe altered portion. If the user 110 changes his or her attention orgaze in response to the altered portion, the eye tracking system 112analyzes this change in the user's attention or gaze to make one or moredeterminations, for example, whether the first and/or currentcalibration settings are accurate and/or whether the user 110 isdisinterested, which is disclosed in greater detail below.

In some examples, when the portion 312 is altered at the first gazelocation 308, the user 110 may not change his or her attention or gaze(e.g., toward the altered portion 312), which may indicate thecalibration settings are accurate or the user 110 is not interested inand/or responsive to the altered portion 312. Otherwise, in otherexamples, when the user 110 changes his or her attention or gaze (e.g.,toward the altered portion 312) in response to the portion 312 beingaltered at the first gaze location, the calibration settings areconsidered to be inaccurate.

In some other examples, after the eye tracking system 112 determines thefirst gaze location, the eye tracking system 112 alters the portion ofthe screen 108 and/or the display 102 offset to the first gaze location(e.g., the first spatial coordinates) by a pre-determined distance(e.g., the pre-determined distance 314 of FIG. 3C), which may provoke adifferent and/or unique reaction or response from the user 110 comparedto altering the portion at the first gaze location. For example, whenthe first spatial coordinates include the first set of values (x₁,y₁),where x₁=100, y₁=200, the eye tracking system 112 alters the portion ofthe screen 108 and/or the display 102 offset to the first spatialcoordinates by the pre-determined distance provided by offset spatialcoordinates (x_(Δ),y_(Δ)), for example, having values where x_(Δ)=20 andy_(Δ)=20. In this example, the eye tracking system 112 alters theportion of the screen 108 and/or the display 102 at resultant spatialcoordinates (x_(R),y_(R)) relative to the first spatial coordinates(x₁,y₁), for example, having values where x_(R)=x₁+x_(Δ)=120 andy_(R)=y₁+y_(Δ)=220. In other examples, the portion is altered by anyother suitable pre-determined distance and/or spatial coordinatesrelative to the first gaze location. In such examples, by altering theportion 312 offset to the first gaze location instead of at the firstgaze location, the user 110 is encouraged and/or more likely to changehis or her attention or gaze to the altered portion 312. In some suchexamples, if the user's 110 attention or gaze changes exactly to thealtered portion 312, the calibration settings are considered to beaccurate. Otherwise, in other examples, if the user's 110 attention orgaze does not change or changes adjacent and/or near the altered portion312, the calibration settings are considered to be inaccurate and/or theuser 110 is considered to be disinterested

Additionally or alternatively, in some examples, the eye tracking system112 alters the portion by changing a color of one or more of the pixelsof the display 102 to contrast adjacent pixels, which may attract theuser's 110 attention or gaze and facilitate or induce the user's 110response or reaction to change his or her attention or gaze to theportion. For example, when an image 104 at, near and/or offset to (e.g.,by the pre-determined distance) the first gaze location includes a firstcolor (e.g., black, blue, etc.) (i.e., a dark color), the eye trackingsystem 112 changes the color of the one or more surrounding or adjacentpixels to include a second color (e.g., white, yellow, etc.) (i.e., alight color) that contrasts the first color.

In other examples, the eye tracking system 112 alters the portion byproviding a first shape that contrasts a second shape surrounding oradjacent to the first shape. For example, when the image 104 at or nearthe first gaze location includes a first shape (e.g., a circle, an ovaland/or a general curvature, etc.), the eye tracking system 112 controlsthe one or more pixels to include a second shape (e.g., a square and/ora rectangle, etc.) that contrasts the first shape. In other examples,the altered portion can include any other suitable shapes (e.g.,circles, triangles, other regular or irregular polygons, etc.) and/orsymbols that contrast adjacent shapes and/or symbols, therebyfacilitating or otherwise inducing the user's 110 reaction or response.

Additionally or alternatively, in some examples, the eye tracking system112 alters the portion for a time interval that may be associated withreaction characteristics (e.g., a reaction time) of the user 110, whichmay further attract the user's 110 attention and/or facilitate and/orinduce a natural response of the user 110 to change his or her attentionor gaze to the portion. For example, the eye tracking system 112 canalter the portion between about 1 millisecond and about 100milliseconds. In other examples, the eye tracking system 112 alters theportion for any other suitable duration of time that enables the user110 to react to the altered portion while reducing disturbances and/orirritations that may have otherwise been perceived by the user 110 fromusing a relatively longer duration of time (e.g., 1 second, 2 seconds,etc.).

In some example, after the eye tracking system 112 alters the portion ofthe screen 108 and/or the display 102, the eye tracking system 112generates and/or stores (e.g., via the database 214) a timestampassociated with when the portion was altered. For example, the eyetracking system 112 generates and/or stores a first timestamp t₁ havinga value where t₁=0. The eye tracking system 112 compares this firsttimestamp t₁ to a second timestamp t₂, in some examples, to determine adisinterest of the user 110, which is disclosed in greater detail below.

The example process 400 includes generating and/or gathering additionalgaze data (block 408). After the eye tracking system 112 determines thefirst gaze location (block 404), the user 110 may continue viewing theimages 104 presented via the display 102 and, in such examples, thesensor(s) 114 continue to generate and/or gather gaze data based onwhere the user 110 is looking relative to the screen 108 and/or thedisplay 102. For example, when the user 110 changes his or her attentionor gaze to the altered portion of the display 102, as disclosed above,the sensor(s) 114 detect(s) this change and/or the light emitting orreflecting from the user 110 (e.g., via his or her eye). As thesensor(s) 114 continues to generate and/or gather the additional gazedata, the eye tracking system 112 stores (e.g., via the database 214)the additional gaze data.

The example process 400 includes determining a second gaze locationbased on the additional gaze data and the calibration settings (block410). For example, based on the additional generated and/or gatheredgaze data (at block 408) and the first and/or current calibrationsettings, the eye tracking system 112 determines a second gaze location.In some examples, the second gaze location is different from the firstgaze location. For example, the second gaze location is provided and/ordefined by second spatial coordinates (x₂,y₂) and the above-mentionedsecond timestamp t₂ having values, for example, where x₂=110, y₂=225 andt₂=0.3. In this example, the second timestamp t₂ is associated with whenthe second gaze location was determined (e.g., relative to when theportion of the screen 108 and/or the display 102 was altered). Accordingto the illustrated example, the eye tracking system 112 advantageouslyuses the first gaze location and the second gaze location to determinewhether the first and/or current calibration settings are accurate,which is disclosed in greater detail below.

The example process 400 includes updating the database 214 with thefirst and/or the second gaze locations (block 412). After the eyetracking system 112 determines the first gaze location (block 404), thesecond gaze location (block 410) and/or other (e.g., third, fourth,etc.) gaze locations, the eye tacking system 112 stores (e.g., via thedatabase 214) the first gaze location, the second gaze location, and/orthe other gaze locations as associated data or information. For example,the eye tracking system 112 stores respective spatial coordinates andtimestamps having values associated with the first gaze location, thesecond gaze location and/or other gaze locations. In other examples, theeye tracking system 112 stores timestamps having values associated withwhen the portion of the screen 108 and/or the display 102 were altered.

The example process 400 includes performing a comparison of the firstgaze location and the second gaze location with one or more thresholdvalues (block 414), which indicates whether the first and/or currentcalibration settings are at least partially accurate. For example, theeye tracking system 112 compares (e.g., via the comparator 210) thefirst gaze location to the second gaze location (e.g., stored in thedatabase 214). In some examples, as disclosed above, the comparisonprovides one or more difference values between the compared gazelocations. For example, when the first spatial coordinates (x₁,y₁) havevalues where x₁=100 and y₁=200 and the second spatial coordinates(x₂,y₂) have values where x₂=110, y₂=225, the eye tracking system 112can provide first difference values such as a value of an x-componentx_(Dx) and a value of a y-component y_(Dy), where x_(Dx)=x₂−x₁=10 andy_(Dy)=y₂−y₁=25.

The eye tracking system 112 compares (e.g., via the comparator 210) thedifference value(s) to one or more respective thresholds, for example,to determine whether the first and/or current calibration settings areaccurate and/or to update the first and/or current calibration settings.In some examples, the eye tracking system 112 compares the x-componentx_(Dx) of the difference value(s) to a first threshold value. Forexample, when the above-disclosed portion of the display 102 is alteredat the first gaze location, the first threshold value is 0. In suchexamples, the first threshold value is met if the value of thex-component x_(Dx) of the difference value(s) is equal to the firstthreshold value, where x_(Dx)=0, which indicates the first and/orcurrent calibration settings are partially accurate.

Similarly, in some examples, the eye tracking system 112 compares they-component y_(Dy) of the difference value(s) to a second thresholdvalue. For example, when the portion of the display 102 is altered atthe first gaze location, the second threshold value is 0. In suchexamples, the second threshold value is met if the value of they-component y_(Dy) is equal to the second threshold value, wherey_(Dy)=0, which indicates the first and/or current calibration settingsare partially accurate.

According to the illustrated example, when the first threshold value andthe second threshold value are met, the first and/or current calibrationsettings are considered accurate and may not require further or anyupdates.

Additionally or alternatively, in other examples, when the portion ofthe display 102 is altered offset to the first gaze location by thepre-determined distance disclosed above, the first threshold value isassociated with the pre-determined distance. For example, the firstthreshold value can include the x-component x_(Δ) of the above-disclosedoffset spatial coordinates (x_(Δ),y_(Δ)). In such examples, the firstthreshold value x_(Δ) is met if an absolute value of the x-componentx_(Dx) of the difference value(s) is equal to an absolute value of thefirst threshold value x_(Δ), where |x_(Dx)|=|x_(Δ)|.

Similarly, in other examples, when the portion of the display 102 isaltered offset to the first gaze location by the pre-determineddistance, the second threshold value is associated with thepre-determined distance. For example, the second threshold value caninclude the y-component y_(Δ) of the offset spatial coordinates(x_(Δ),y_(Δ)). In such examples, the first threshold value y_(Δ) is metif an absolute value of the y-component y_(Dy) of the differencevalue(s) is equal to an absolute value of the second threshold valuey_(Δ), where |y_(Dy)|=|Δ_(y)|.

Additionally or alternatively, in some examples, the eye tracking system112 continues iterations of comparisons between consecutive pairs ofdetermined gaze locations with the first threshold value and/or thesecond threshold value to eventually meet the first threshold valueand/or the second threshold value. For example, the eye tracking system112 compares: a third gaze location and a fourth gaze location with thefirst threshold value and the second threshold value respectively; afifth gaze location and a sixth gaze location with the first thresholdvalue and the second threshold value respectively; etc.

After performing the comparison (block 414), the example process 400includes determining whether the threshold value(s) is/are met (block416). In some examples, if the comparison meets the first threshold andthe second threshold, the example process 400 includes identifying oneor more trends of the comparison (block 418). Otherwise, in otherexamples, if the comparison does not meet the first threshold valueand/or the second threshold value, the example process 400 proceeds toassess user activity (block 424), for example, to determine whether theuser 110 is disinterested.

The example process 400 includes identifying one or more trends from thecomparison (block 418). For example, the eye tracking system processesand/or analyzes (e.g., via the trend analyzer 216) results of differentiterated comparisons (e.g., performed by the comparator 210). In suchexamples, as the eye tracking system 112 continues iterations ofcomparisons (block 414), successive results of the comparisons mayconsistently meet the first threshold and the second threshold toprovide a first trend, which may indicate accurate calibration settings.For example, after each iterated comparison (block 414), the first trendincludes consecutive values of the x-component of the differencevalue(s) (e.g., x_(Dx)=x₂−x₁, x_(Dx)=x₄−x₃, etc.) and consecutive valuesof the y-component of the difference value(s) (e.g., y_(Dy)=y₂−y₁,y_(Dy)=y₄−y₃, etc.) that meet the first threshold value (e.g., 0 and/orΔx) and the second threshold value (e.g., 0 and/or Δy) respectively. Insome such examples, the eye tracking system 112 identifies (e.g., viathe trend analyzer 216) this first trend. In other examples, if resultsof the comparisons do not consistently meet the threshold firstthreshold value and the second threshold value, the first trend is notprovided and, thus, the eye tracking system 112 does not identify thefirst trend. In some examples, if the eye tracking system 112 has notperformed more than one comparison (block 414), the eye tracking system112 does not identify the first trend.

In some examples, by performing and/or iterating multiple comparisons asdisclosed above, irrelevant determined gaze locations (i.e., outliergaze locations) may be identified such as, for example, a gaze locationthat is significantly different from the other gaze locations, therebycausing the iterated comparisons to not consistently meet the firstthreshold value and/or the second threshold value. These outlier gazelocations can be caused by, for example, distractions perceived by theuser 110 (e.g., pop-up ads or other spontaneous images presented via thedisplay 102), noise within the sensor(s) 114, distractions in theexternal environment, etc. In such examples, outlier gaze locations, ifany, may not negatively affect the above-disclosed first trend. Forexample, when performing multiple comparisons, a number of these outliergaze locations may account for a relatively small percentage (e.g., lessthan 10%) of all the determined gaze locations. In some examples, whenidentifying the first trend, the eye tracking system 112 advantageouslyutilizes, for example, a confidence interval (e.g., a calculated and/orpredetermined confidence interval) to filter and/or account for theoutlier gaze locations, thereby determining whether these outlier gazelocations account for a significant portion of all the determined gazelocations. In some examples, if the determined gaze locations providedfrom the iterated comparisons include a majority of outlier gazelocations (e.g., greater than 50%), the eye tracking system 112 does notidentify the first trend. In other examples, the eye tracking system 112implements any other suitable equations, algorithms, methods and/ortechniques (e.g., relating to statistics) to determine whether theoutlier gaze locations negatively affect the first trend and, thus,enable the eye tracking system 112 to identify the first trend in thepresence of outlier gaze locations.

The example process 400 includes determining whether a trend indicatesaccurate calibration settings (block 420). In some examples, if the eyetracking system 112 identifies the first trend disclosed above, whichindicates accurate calibration settings, the example process 400 ends.In other examples, if the eye tracking system 112 does not identify thefirst trend, the examples process 400 includes updating the first and/orcurrent calibration settings based on the comparison (block 422), whichmay increase accuracy when determining subsequent gaze locations.

The example process 400 includes updating the calibration settings(e.g., the first and/or current calibration settings) based on thecomparison (block 422). For example, if the first threshold value is notmet by the comparison (block 414), the eye tracking system 112 updates(e.g., via the calibrator 212) the x-component {circumflex over (x)} ofthe calibration vector. In some examples, updating the x-component{circumflex over (x)} of the calibration vector includes decreasingand/or increasing a value of the x-component {circumflex over (x)} byusing value associated with the x-component x_(Dx) of the differencevalue(s). In some such examples, when the first threshold value is 0 andthe x-component x_(Dx) of the difference values(s) is greater than thefirst threshold value at the comparison (block 414), the eye trackingsystem 112 reduces the value of the x-component {circumflex over (x)} ofthe calibration vector by the x-component x_(Dx) of the differencevalue(s). That is, when the first threshold value is 0 and x_(Dx)>0, theeye tracking system 112 reduces the x-component {circumflex over (x)} ofthe calibration vector by the x-component x_(Dx) of the differencevalue(s), where {circumflex over (x)}={circumflex over (x)}−x_(Dx).Similarly, when the first threshold value is 0 and x_(Dx)<0, the eyetracking system 112 increases the value of the x-component {circumflexover (x)} of the calibration vector by the x-component x_(Dx) of thedifference value(s), where {circumflex over (x)}={circumflex over(x)}+x_(Dx).

In some examples, when the first threshold value includes thex-component x_(Δ) of the offset spatial coordinates (x_(Δ),y_(Δ)) andx_(Dx)>x_(Δ), the eye tracking system 112 reduces the x-component{circumflex over (x)} of the calibration vector by a value provided byx_(Dx)−x_(Δ), where {circumflex over (x)}={circumflex over(x)}−(x_(Dx)−x_(Δ)). Similarly, in other examples, when the firstthreshold value includes the x-component x_(Δ) of the offset spatialcoordinates (x_(Δ),y_(Δ)) and x_(Dx)<x_(Δ), the eye tracking system 112increases the x-component {circumflex over (x)} of the calibrationvector by the value provided by x_(Δ)−x_(Dx), where {circumflex over(x)}={circumflex over (x)}+(x_(Dx)−x_(Δ)).

Additionally or alternatively, in some examples, if the second thresholdvalue is not met by the comparison (block 414), the eye tracking system112 updates (e.g., via the calibrator 212) the y-component ŷ of thecalibration vector. In some examples, updating the y-component ŷ of thecalibration vector includes decreasing and/or increasing a value of they-component ŷ by using a value associated with the y-component y_(Dy) ofthe difference value(s). In some such examples, when the secondthreshold value is 0 and the y-component y_(Dy) of the differencevalue(s) is greater than the second threshold value at the comparison(block 414), the eye tracking system 112 reduces the value of they-component ŷ of the calibration vector by the y-component y_(Dy) of thedifference value(s). That is, when the second threshold value is 0 andy_(Dy)>0, the eye tracking system 112 reduces the y-component ŷ of thecalibration vector by the y-component y_(Dy) of the difference value(s),where ŷ=y−ŷ_(Dy). Similarly, when the second threshold value is 0 andy_(Dy)<0, the eye tracking system 112 increases the value of they-component ŷ of the calibration vector by the y-component y_(Dy) of thedifference values, where ŷ=ŷ+y_(Dy).

In some examples, when the second threshold value includes they-component y_(Δ) of the offset spatial coordinates (x_(Δ),y_(Δ)) andy_(Dy)>y_(Δ), the eye tracking system 112 reduces the y-component ŷ ofthe calibration vector by a value provided by y_(Dy)−y_(Δ), whereŷ=ŷ−(y_(Dy)−y_(Δ)). Similarly, in other examples, when the secondthreshold value includes the y-component y_(Δ) of the offset spatialcoordinates (x_(Δ),y_(Δ)) and y_(Dy)<y_(Δ), the eye tracking system 112increases the y-component ŷ of the calibration vector by the valueprovided by y_(Δ)−y_(Dy), where ŷ=ŷ+(y_(Dy)−y_(Δ)).

In some examples, after at least partially updating the first and/orcurrent calibration settings (block 422), the example process 400iterates by continuing and/or returning to generating and/or gatheringgaze data associated with the user 110 viewing the display 102 (block402). In some such examples, the eye tracking system 112 determinessubsequent gaze locations using the updated calibration settings (e.g.,the updated calibration vector). For example, the eye tracking system112 determines a third gaze location based on the generated and/orgathered gaze data and the updated calibration settings (block 404). Insome such examples, the eye tracking system 112 continues iterations ofdisplay alterations (block 406) and gaze location comparisons (block414) and/or, more generally, the example process 400 iterates until thefirst threshold value and the second threshold value are met and theabove-disclosed first trend is determined (e.g., via the trend analyzer216).

Additionally or alternatively, in some examples, the example process 400includes assessing user activity (block 424). In some examples, as theexample process 400 iterates, a reaction time of the user 110 canincrease, which may indicate a disinterest of the user 110, as mentionedabove. That is, a time interval between when the portion of the display102 was altered (e.g., t₁) by the eye tracking system 112 (block 406)and when the user 110 changed his or her attention or gaze (block 410)to the corresponding determined gaze location (e.g., the above-disclosedsecond gaze location) (e.g., t₁) can be relatively large (e.g., t₂−t₁>1second) and/or can gradually increase as the example process 400iterates. In such examples, the eye tracking system 112 identifies(e.g., via the trend analyzer 216) this user activity.

In some examples, the eye tracking system 112 identifies other useractivity that indicates disinterest of the user 110. For example, duringuse of the eye tracking system 112 and/or the display 102, inputs and/orinteractions provided by the user 110 (e.g., inputs via a mouse, akeyboard, a touch screen, etc.) may become less frequent and/or maycease. In such examples, this user activity also indicates thedisinterest of the user 110 and is identified by the eye tracking system112 (e.g., via the trend analyzer 216).

After assessing user activity, the example process 400 includesdetermining whether there is a disinterest of the user 110 (block 426).In some examples, if the eye tracking system 112 identifies thedisinterest, the example process 400 ends. Otherwise, the exampleprocess 400 proceeds to update the first and/or current calibrationsettings (block 422).

The flowchart of FIG. 4 is representative of an example process 400and/or machine-readable instructions for implementing the example eyetracking system 112 of FIGS. 1 and 2. In this example, themachine-readable instructions comprise a program for execution by aprocessor such as the processor 512 shown in the example processorplatform 500 discussed below in connection with FIG. 5. The program maybe embodied in software stored on a tangible computer readable storagemedium such as a CD-ROM, a floppy disk, a hard drive, a digitalversatile disk (DVD), a Blu-ray disk, or a memory associated with theprocessor 512, but the entire program and/or parts thereof couldalternatively be executed by a device other than the processor 512and/or embodied in firmware or dedicated hardware. Further, although theexample program is described with reference to the flowchart illustratedin FIG. 4, many other methods of implementing the example eye trackingsystem 112 may alternatively be used. For example, the order ofexecution of the blocks may be changed, and/or some of the blocksdescribed may be changed, eliminated, or combined.

As mentioned above, the example process of FIG. 4 may be implementedusing coded instructions (e.g., computer and/or machine readableinstructions) stored on a tangible computer readable storage medium suchas a hard disk drive, a flash memory, a read-only memory (ROM), acompact disk (CD), a digital versatile disk (DVD), a cache, arandom-access memory (RAM) and/or any other storage device or storagedisk in which information is stored for any duration (e.g., for extendedtime periods, permanently, for brief instances, for temporarilybuffering, and/or for caching of the information). As used herein, theterm tangible computer readable storage medium is expressly defined toinclude any type of computer readable storage device and/or storage diskand to exclude propagating signals and to exclude transmission media andcarrier waves. As used herein, “tangible computer-readable storagemedium” and “tangible machine-readable storage medium” are usedinterchangeably. Additionally or alternatively, the example process ofFIG. 4 may be implemented using coded instructions (e.g., computerand/or machine readable instructions) stored on a non-transitorycomputer and/or machine readable medium such as a hard disk drive, aflash memory, a read-only memory, a compact disk, a digital versatiledisk, a cache, a random-access memory and/or any other storage device orstorage disk in which information is stored for any duration (e.g., forextended time periods, permanently, for brief instances, for temporarilybuffering, and/or for caching of the information). As used herein, theterm non-transitory computer readable medium is expressly defined toinclude any type of computer readable storage device and/or storage diskand to exclude propagating signals or carrier waves and to excludetransmission media. As used herein, when the phrase “at least” is usedas the transition term in a preamble of a claim, it is open-ended in thesame manner as the term “comprising” is open ended. Comprising and allother variants of “comprise” are expressly defined to be open-endedterms. Including and all other variants of “include” are also defined tobe open-ended terms. In contrast, the term consisting and/or other formsof consist are defined to be close-ended terms.

FIG. 5 is a block diagram of an example processor platform 500 capableof executing the instructions of FIG. 4 to implement the example eyetracking system 112 of FIG. 2. The processor platform 500 can be, forexample, a server, a personal computer, a mobile device (e.g., a cellphone, a smart phone, a smart watch, a headset, a tablet such as aniPad™), a personal digital assistant (PDA), an Internet appliance, a DVDplayer, a CD player, a digital video recorder, a Blu-ray player, agaming console, a personal video recorder, a set top box, or any othertype of computing device or device having computing capabilities.

The processor platform 500 of the illustrated example includes aprocessor 512. The processor 512 of the illustrated example is hardware.For example, the processor 512 can be implemented by one or moreintegrated circuits, logic circuits, microprocessors or controllers fromany desired family or manufacturer.

The processor 512 of the illustrated example includes a local memory 513(e.g., a cache). The processor 512 of the illustrated example executesthe instructions to implement the example eye tracking system 112. Theprocessor 512 of the illustrated example is in communication with a mainmemory including a volatile memory 514 and a non-volatile memory 516 viaa bus 518. The volatile memory 514 may be implemented by SynchronousDynamic Random Access Memory (SDRAM), Dynamic Random Access Memory(DRAM), RAMBUS Dynamic Random Access Memory (RDRAM) and/or any othertype of random access memory device. The non-volatile memory 516 may beimplemented by flash memory and/or any other desired type of memorydevice. Access to the main memory 514, 516 is controlled by a memorycontroller.

The processor platform 500 of the illustrated example also includes aninterface circuit 520. The interface circuit 520 may be implemented byany type of interface standard, such as an Ethernet interface, auniversal serial bus (USB), and/or a PCI express interface.

In the illustrated example, one or more input devices 522 are connectedto the interface circuit 520. The input device(s) 522 permit(s) a userto enter data and commands into the processor 512. The input device(s)can be implemented by, for example, an audio sensor, a microphone, acamera (still or video), a keyboard, a button, a mouse, a touchscreen, atrack-pad, a trackball, isopoint and/or a voice recognition system.

One or more output devices 524 are also connected to the interfacecircuit 520 of the illustrated example. The output devices 524 can beimplemented, for example, by display devices (e.g., a light emittingdiode (LED), an organic light emitting diode (OLED), a liquid crystaldisplay, a cathode ray tube display (CRT), a touchscreen, a tactileoutput device, a printer and/or speakers). The interface circuit 520 ofthe illustrated example, thus, typically includes a graphics drivercard, a graphics driver chip or a graphics driver processor.

The interface circuit 520 of the illustrated example also includes acommunication device such as a transmitter, a receiver, a transceiver, amodem and/or network interface card to facilitate exchange of data withexternal machines (e.g., computing devices of any kind) via a network526 (e.g., an Ethernet connection, a digital subscriber line (DSL), atelephone line, coaxial cable, a cellular telephone system, etc.).

The processor platform 500 of the illustrated example also includes oneor more mass storage devices 528 for storing software and/or data.Examples of such mass storage devices 528 include floppy disk drives,hard drive disks, compact disk drives, Blu-ray disk drives, RAIDsystems, and digital versatile disk (DVD) drives.

The coded instructions 532 of FIG. 4 may be stored in the mass storagedevice 528, in the volatile memory 514, in the non-volatile memory 516,and/or on a removable tangible computer readable storage medium such asa CD or DVD.

From the foregoing, it will be appreciated that the above disclosedsystems and methods optimize eye tracking systems by increasing accuracywhen determining gaze locations. Additionally or alternatively, examplesdisclosed herein perform calibration processes associated with the eyetracking systems while reducing and/or eliminating distractions,disturbances, and/or inconveniences perceived by one or more users.

Although certain example methods, apparatus and articles of manufacturehave been disclosed herein, the scope of coverage of this patent is notlimited thereto. On the contrary, this patent covers all methods,apparatus and articles of manufacture fairly falling within the scope ofthe claims of this patent.

What is claimed is:
 1. A system comprising: a sensor to gather gaze datafrom a user viewing images on a display, the display having spatialcoordinates; and a processor communicatively coupled to the display andthe sensor, the processor to: determine a first gaze location havingfirst spatial coordinates based on the gaze data and calibrationsettings associated with determining gaze locations; alter a portion ofthe display at or near the first gaze location; after the portion of thedisplay has been altered, determine a second gaze location having secondspatial coordinates based on the gaze data and the calibration settings;perform a comparison of the first gaze location to the second gazelocation; and if the comparison does not meet a threshold, update thecalibration settings based on the comparison; and determine a third gazelocation having third spatial coordinates based on the gaze data and theupdated calibration settings.
 2. The system of claim 1, wherein theprocessor is to continue iterations of display alterations and gazelocation comparisons until the threshold is met.
 3. The system of claim1, wherein the portion is positioned offset to the first spatialcoordinates by a pre-determined distance.
 4. The system of claim 1,wherein the processor is to alter the portion of the display by changinga color of one or more pixels to contrast adjacent pixels.
 5. The systemof claim 1, wherein the processor is to alter the portion of the displayby including a first shape that contrasts a second shape surrounding oradjacent to the first shape.
 6. The system of claim 1, wherein theprocessor is to alter the portion of the display for a time intervalbetween about 1 millisecond and about 100 milliseconds.
 7. The system ofclaim 1, wherein the processor is to alter the portion of the displayperiodically or aperiodically.
 8. A method comprising: presenting imagesto a user via a display, the display having spatial coordinatesassociated with the images; gathering gaze data from the user viewingthe images via a sensor; determining a first gaze location having firstspatial coordinates based on the gaze data and calibration settingsassociated with determining gaze locations; altering a portion of thedisplay at or near the first gaze location; after the portion of thedisplay has been altered, determining a second gaze location havingsecond spatial coordinates based on the gaze data and the calibrationsettings; performing a comparison of the first gaze location to thesecond gaze location; and if the comparison does not meet a threshold,updating the calibration settings based on the comparison; anddetermining a third gaze location having third spatial coordinates basedon the gaze data and the updated calibration settings.
 9. The method ofclaim 8, further including continuing iterations of display alterationsand gaze location comparisons until the threshold is met.
 10. The methodof claim 8, wherein the portion is positioned offset to the firstspatial coordinates by a pre-determined distance.
 11. The method ofclaim 8, wherein altering the portion of the display includes changing acolor of one or more pixels to contrast adjacent pixels.
 12. The methodof claim 8, wherein altering the portion of the display includesproviding a first shape that contrasts a second shape surrounding oradjacent to the first shape.
 13. The method of claim 8, wherein alteringthe portion of the display occurs for a time interval between 1milliseconds and 100 milliseconds.
 14. The method of claim 8, whereinthe portion is repeatedly altered.
 15. A tangible machine-readablestorage medium comprising instructions which, when executed, cause aprocessor to: present images to a user via a display, the display havingspatial coordinates associated with the images; gather gaze data fromthe user viewing the images via a sensor; determine a first gazelocation having first spatial coordinates based on the gaze data andcalibration settings associated with determining gaze locations; alter aportion of the display at or near the first gaze location; after theportion of the display has been altered, determine a second gazelocation having second spatial coordinates based on the gaze data andthe calibration settings; perform a comparison of the first gazelocation to the second gaze location; and if the comparison does notmeet a threshold, update the calibration settings based on thecomparison; and determine a third gaze location having third spatialcoordinates based on the gaze data and the updated calibration settings.16. The tangible machine-readable storage medium of claim 15, furtherincluding instructions which, when executed, cause the processor tocontinue iterations of display alterations and gaze location comparisonsuntil the threshold is met.
 17. The tangible machine-readable storagemedium of claim 15, wherein the portion is positioned offset to thefirst spatial coordinates by a pre-determined distance.
 18. The tangiblemachine-readable storage medium of claim 15, further includinginstructions which, when executed, cause the processor to alter theportion of the display by changing a color of one or more pixels tocontrast adjacent pixels.
 19. The tangible machine-readable storagemedium of claim 15, further including instructions which, when executed,cause the processor to alter the portion of the display by providing afirst shape that contrasts a second shape surrounding or adjacent to thefirst shape.
 20. The tangible machine-readable storage medium of claim15, further including instructions which, when executed, cause theprocessor to alter the portion of the display for a time intervalbetween 1 milliseconds and 100 milliseconds.